home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 March: Reference Library / Dev.CD Mar 97 RL.toast / mac / Technical Documentation / develop / develop Issue 24 / develop Issue 24 code / Scriptable Database 1.0a15.sea / Scriptable Database 1.0a15 / Application / Application.h / Application.h
Encoding:
C/C++ Source or Header  |  1996-02-20  |  2.7 KB  |  78 lines  |  [TEXT/CWIE]

  1. #ifndef __APPLICATION__
  2. #define __APPLICATION__
  3.  
  4. class TAbstractDocument;
  5. class TFSSpecification;
  6.  
  7. //
  8. // For class definition of TAbstractScriptableObject,
  9. // needed as base class of TApplication
  10. //
  11. #include "AbstractScriptableObject.h"
  12.  
  13. //
  14. // For class definition of TFSSpecification, needed
  15. // as a field of TApplication
  16. //
  17. #include "FSSpecification.h"
  18.  
  19. //
  20. // For definition of Int64, used as a parameter of
  21. // methods of TApplication
  22. //
  23. #include "Int64.h"
  24.  
  25. #define clApplication 10
  26.  
  27. //================================================================================
  28. // Class TApplication
  29. //================================================================================
  30. class TApplication : public TAbstractScriptableObject
  31. {
  32. private:
  33.     TApplication();
  34.     
  35. public:
  36.     DeclareClassData(TApplication, TAbstractScriptableObject);
  37.  
  38.     static TApplication*                Instance() { if(gApplication == nil) gApplication = new TApplication; return gApplication; }
  39.     
  40.     virtual DescType                    ObjectClass(const TAETransaction& t, Boolean recordedClass = false);
  41.     virtual Boolean                        DerivedFromOSLClass(const TAETransaction& t, DescType objectClass);
  42.  
  43.     virtual TAbstractObjectIterator*    ElementIterator(const TAETransaction& t);
  44. //    virtual long                        CountElements(DescType classToCount = typeWildCard);
  45. //    virtual TAbstractScriptableObject*    AccessByIndex(DescType desiredClass, long index);
  46.     virtual TAbstractScriptableObject*    AccessByUniqueID(const TAETransaction& t, DescType desiredClass, TDescriptor uniqueID);
  47.  
  48.     virtual TDescriptor                    GetProperty(const TAETransaction& t, DescType propertyName, DescType desiredType, unsigned long additionalInfo = 0);
  49.     virtual void                        SetProperty(const TAETransaction& t, DescType propertyName, TDescriptor& data, unsigned long additionalInfo = 0);
  50.  
  51.     virtual TDescriptor                    AECommand(const TAETransaction& t, long aeCommandID, TAbstractScriptableObject* auxObjects = nil, long auxInfo = 0);
  52.     virtual TAbstractScriptableObject*    CreateNewElement(const TAETransaction& t, DescType newObjectClass, TDescriptor initialData, TDescriptor initialProperties, Boolean& usedInitialData, Boolean& usedInitialProperties);
  53.  
  54.     TAbstractDocument*                    FindDocument(Int64, Boolean searchForAndOpen = false);
  55.     TAbstractDocument*                    FindDocument(TFSSpecification& fileSpec, Boolean openDocument = false);
  56.  
  57.     long                                DocumentIndex(Int64 documentID);
  58.  
  59.     void                                Idle();
  60.     void                                MarkForClose(TAbstractDocument* doc);
  61.     void                                ProcessCloseRequest();
  62.     void                                TearDownApplication();
  63.     
  64.     void                                SetResolutionMode(long newValue);
  65.  
  66.     long                                AppFileVRefNum() { return fFileSpec.VRefNum(); }
  67.     
  68. private:
  69.     Boolean                                fCloseRequestsPending;
  70.     long                                fResolutionMode;
  71.     ProcessSerialNumber                    fPSN;
  72.     TFSSpecification                    fFileSpec;    
  73.     
  74.     static TApplication*                gApplication;
  75. };
  76.  
  77. #endif
  78.